package com.weimin.springbootgrpcclient.service;


import com.weimin.proto.BaseMessage;

import java.util.List;

public interface IGrpcService {
    /**
     * 普通方法
     *
     * @param msg 请求消息
     * @return 普通方法返回对象
     */
    BaseMessage.Message commonMethod(String msg);

    /**
     * 服务端流代码
     *
     * @param msg 请求消息
     * @return 服务端流持续返回内容
     */
    List<BaseMessage.Message> serviceEndStreamMethod(String msg);

    /**
     * 客户端流代码
     *
     * @param list 请求列表参数
     * @return 服务端返回内容
     */
    BaseMessage.Message clientStreamMethod(List<BaseMessage.Message> list) throws InterruptedException;

    /**
     * 双向流
     *
     * @param list 请求参数
     * @return 服务端持续返回内容
     */
    List<BaseMessage.Message> bidirectionalFlowMethod(List<BaseMessage.Message> list) throws InterruptedException;
}
